热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

研究人员|动机_从事了两年AI研究,我学到了什么?

篇首语:本文由编程笔记#小编为大家整理,主要介绍了从事了两年AI研究,我学到了什么?相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了从事了两年 AI 研究,我学到了什么?相关的知识,希望对你有一定的参考价值。




作者 | Tom Silver


译者 | 弯月


出品 | CSDN(ID:CSDNnews)


我从事人工智能研究的工作已经有两年了,有朋友问我都学到了什么,所以我想借本文分享一些迄今为止积累的经验教训。我将在本文中分享一些常见的经历,还会讨论相对具体的人工智能行业技巧。希望对大家能有一定的帮助。




大胆向同事请教

起初,我有点畏惧周围的同事,害怕一些过于基本的问题可能会暴露自己缺乏专业知识。几个月后,我与同事们相处得越来越融洽,但提问的时候我仍然会小心翼翼。现在我有几个可以敞开心扉的好朋友了。


多么希望我能早点与他们成为好朋友!这样就不必下班后拼命上网搜索资料了。现在每当遇到困惑,我会立即提出来,并在进一步发酵之前解决掉。





通过各种途径寻找研究灵感

决定研究课题是我的工作中最困难的部分。下面是研究人员经常采用的一般策略:


1、与不同领域的研究人员交谈。询问他们对什么问题感到兴奋,并尝试用计算机术语重新表述问题。问一问他们是否有想要分析的数据集,但目前已有的技术不足以完成这些分析。在机器学习中,许多颇有影响力的研究都源于与生物、化学、物理、社会科学或纯数学的碰撞。


例如,Matthew Johnson 等人发表的论文《Composing graphicalmodels with neural networks for structured representations and fast inference》就源自一个老鼠行为的数据集,而Justin Gilmer 等人发表的论文《Neural Message Passingfor Quantum Chemistry》则源于量子化学的应用。


2、针对问题编写一个简单的基准方案。例如,尝试编写一些经过仔细校准的代码来控制倒立摆,或者尝试将词袋模型应用到自然语言数据集上。在编写基准方案时,我经常遇到意想不到的情况,有时是我的预期有问题,有时则是代码的问题。在找到合适的基准后,通常我会产生一些其他想法,并更深入地理解问题。


3、扩展论文的实验部分。仔细阅读方法和结果。尝试找到实验的办法。首先考虑简单的扩展,然后思考论文的方法是否充分。想一想还有哪些基准方法没有讨论,并想象这些方法可能不足的地方。





在视化工具和技巧方面的投入

我采用的编写研究代码的策略是从创建可视化脚本开始。编写完其余代码后,运行可视化脚本就可以快速验证代码是否符合我的预期。更重要的是,良好的可视化可以让我快速发现思路或代码中的错误,而且也更方便解释。在完成代码后,我就可以向其他人展示图形或视频,这样可以让我很有成就感。


针对当前问题提出正确的可视化可能很困难。如果你正在迭代优化模型(例如深度学习),绘制损失曲线将是一个不错的起点。还有许多技术可用于可视化和解释神经网络的学习权重(尤其是卷积神经网络),例如导向反向传播。在强化学习和规划中,最应该可视化的是智能体在其环境中的行为,无论是雅达利游戏、机器人任务,还是简单的网格世界(例如 OpenAI Gym 中的环境)。


根据设置,还可以可视化值函数及其在训练过程中的变化或探索状态树。在处理图形模型时,应该可视化一维或二维变量的分布,因为它随着推理而发生的变化中的信息非常有价值。对于评估可视化,有效性的一种方法是,估计一下在每次分析可视化时头脑中需要记住的信息量。不恰当的可视化需要你经常回忆代码中的细节,而良好的可视化能够让结论一目了然。





认清研究人员和论文的基本动机

尽管所有研究人员都会在同一个会议上发表论文,使用相同的技术术语,并称自己的领域为人工智能,但这些研究背后的动机各有千秋。有些人甚至为了澄清问题为该领域取不同的名字。我们的研究动机主要来自三个方向:“数学”、“工程”和“认知”。


  • “数学”:智能系统的基本属性和限制是什么?

  • “工程”:如何开发智能系统,并用它更好地解决实际问题?

  • “认知”:如何模拟人类和其他动物的自然智能?


这些动机可以互相融合,许多 AI 论文都可以从多个角度来解读。此外,推动个体研究人员的动机通常都不止一种,这有助于将 AI 领域联系在一起。


然而,每个人的动机也可能不一样。我的一些朋友和同事侧重于“工程”,而有些人则对“生物学”感兴趣。比如一篇论文论证了现有技术的一些巧妙组合可以轻松通过最新的基准测试,工程师们就会对其非常感兴趣,但认知科学家可能会不屑一顾。而有些论文仅陈述了理论或实验结果,但符合生物学的要求或关系到认知,则会受到完全相反的待遇。


优秀的论文和研究人员会在开篇说明他们的动机,但通常根本的推动力会被掩盖。我发现,如果动机不明显,则可以只通过一个角度考虑一篇论文。





不要被研究社区大量的信息淹没



寻找论文


AI相关的论文很容易获得,大部分都在 arXiv 上发表。如今相关论文的发表数量之多令人目不暇接。社区中的许多人都在设法整理和分类这些论文。Andrej Karpathy 建立的网站 arXiv sanity preserver提供了一些有用的排序、搜索和过滤功能。Miles Brundage 每天晚上都会在推特上分享一份精心挑选的arXiv 论文清单,Brundage Bot 也曾提供过类似的服务。此外,推特上也经常有人分享一些有趣的参考资料,我建议 AI 研究人员应该关注推特上你喜欢的研究人员。如果你喜欢上 Reddit,那么可以参考一下这个版面  r/MachineLearning,但通常这些帖子更适合机器学习的实践人员,而不是研究人员。Jack Clark 发布了一个名叫“Import AI”的周刊,Denny Britz 也发布了一份名为“The Wild Week in AI”的时事通讯。


一些会议出版的论文集也值得一读。其中著名的三大会议是 NIPS、ICML 和 ICLR。还有一些面向普通观众的会议包括 AAAI、IJCAI 和 UAI。每个子学科也有各自的会议。例如计算机视觉有CVPR、ECCV、ICCV;而自然语言有ACL、EMNLP 和 NAACL;机器人则有 CoRL(学习)、ICAPS(计划,包括但不限于机器人)、ICRA、IROS、RSS;更多理论工作有 AISTATS、COLT 和 KDD。迄今为止,各种会议是相关论文的主要发表渠道,但也有一些期刊。有时,一些高调的论文也会发表在《自然》和《科学》等常见科学期刊上。


旧论文通常更难寻找,但它们也同样重要。有些经典读物会经常出现在研究生课程的参考阅读列表中。发现旧论文的另一种方法是找到该领域的资深教授,看一看他们早期的成名作。当然,你也可以给这些教授发电子邮件,拜托他们提供一些参考资料(但如果他们太忙,无法回复你,也不要生气)。如果你想搜索鲜为人知或被忽视的旧论文,有一种很好的方法是在 Google 学术中搜索关键字。


应该花多少时间阅读论文?


关于一个人应该花多少时间阅读论文,有两种常见的看法。第一种看法是,阅读大量论文,阅读所有论文!人们常说,研究生第一个学期甚至是第一年的学习只有阅读论文。第二种看法是,在后期进入研究工作以后,不要花太多时间阅读论文!意思是说,如果一个人没有受到别人的方法的影响,就更容易创造性地提出和解决问题。


就我个人而言,我同意第一条,但不同意第二条。我认为应该尽可能地阅读大量论文,只要还有时间进行原创研究就没问题。如果我不太清楚其他人尝试过哪些方法,也不知道哪些方法很好,而哪些行不通,那么为了提出新颖、卓越的方法,我就需要阅读大量的论文武装自己。当然,从全新的视角审视问题也非常关键,业余爱好者跳出固有思维而解决长期挑战的故事确实很鼓舞人心,但是,职业研究人员不能靠这样的运气来解决问题。绝大多数时候,我们需要有耐心,慢慢地、有条不紊地解决问题。此外,为了弄清楚我们目前处于何处,以及接下来应该尝试什么,阅读相关论文是一种更有效的方式。


关于阅读论文,还有一点需要注意:你需要花时间慢慢消化论文。拿几张纸,认真做笔记,然后认真思考,好过囫囵吞枣似的一篇接一篇地阅读论文。


交谈 >> 视频 > 论文> 会议演讲


在理解某个陌生的研究思想时,论文是最容易获得的信息来源。但是究竟哪种渠道最有效?对于这个问题,不同的人可能有不同的看法。对于我来说,我认为交谈(与熟练掌握相关思想的人)是最快、最有效的途径。如果你找不到这样的人,则该主题的视频可以提供很好的见解,比如论文作者发表的演讲。当演讲者向现场观众讲话时,他们会比较注重清晰易懂。而在写论文时,作者比较注重简练,因为他们需要考虑篇幅,而且过多的背景介绍甚至会被认为作者对该领域的了解不够深入。最后,简短的会议演讲大多比较正式,并不是太好的学习机会。当然,能与作者的交谈则十分珍贵。


小心炒作


成功的 AI 研究会引起公众的关注,从而将更多的人带入该领域,从而让 AI 的研究更成功。这种循环大多是良性的,但一个有害的副作用是炒作。记者为了获得点击次数、公司为了争夺投资者和新员工、研究人员为了提高论文的知名度,这些都是扩大炒作泡沫的罪魁祸首。在评估标题、新闻稿或论文时,请注意这些人的动机。


在 NIPS 2017 上,一篇论文的问答环节在一间数百名观众的房间里进行,一位著名的教授拿着麦克风告诫作者在论文的题目中使用了“想象”这个词。对于这种公开对抗,我的感觉很复杂,因为那碰巧是一篇我非常喜欢的论文,但我也非常理解教授的心情。在人工智能研究中,最常见和最严重的炒作之一就是给一些旧思想冠上华丽的新术语。因此,我们应该小心这些流行语,并根据实验和结果来判断一篇论文。





研究马拉松



可衡量的进步


在早期寻找研究项目时,我花了很多时间进行头脑风暴。在当时,所谓的头脑风暴其实就是在办公桌前冥思苦想,希望一些模糊的思路能够凝聚成具体的观点。结束一天的头脑风暴后,我经常感到疲倦和气馁。心中直犯嘀咕,这是研究吗?


当然,研究的推进没有秘诀,很大一部分就是在黑暗中摸索。然而,现在我发现围绕某个可衡量的目标来组织我的工作要容易得多,也更有成就感。如果我对下一步要做什么一无所知,那么目标可以是:尽可能详细地写下一个模糊的想法;如果在写这个想法的过程中,我选择放弃,那么就写下放弃的原因。如果没有任何想法,那么就可以阅读论文或与同事交谈。每天结束之际,我都会整理当天的工作。即使有些想法最终未能成行,也可以大大提高我的斗志,而且不必担心将来在同一个想法上浪费时间。


学会辨认死胡同并及时回头


优秀的研究人员会将时间花在靠谱的想法上。能否区分想法的好坏在很大程度上取决于经验。尽管如此,任何级别的研究人员都会不断遇到以下情况:我的研究想法有缺陷或不确定,那么我应该 A) 尝试进一步挽救或支持该想法;还是 B) 完全放弃思考该想法是否合理。我个人认为,我们应该快刀斩乱麻(即采用 B),而不应该花过多时间纠结(即采用 A)。尤其是在从事研究的早期,我曾多次陷入“死胡同”,而且还纠结了很久。我不愿意放手的原因可能是因为一旦放手,之前的付出就白费了,但实际上及时回头才能防止浪费更多时间。


每当某个研究进入“死胡同”,决定放弃时,我都会感到很失落。现在遇到这种情况,我会告诉自己及时回头是为了今后更好地向前。而且这些付出也不会白费,正是有了这些付出,今后我就不会在同一个问题上浪费时间了。“死胡同”不是什么坏事,也是研究的一部分。


坚持写作


一位非常杰出的人工智能研究人员曾给职业生涯早期的我一个建议:坚持写作!无论是写博客文章还是论文,重要的是坚持记录每一天都想法。在听取了他的建议之后,我注意到当我积极写作和思考时,每天取得的进步就会非常明显。


身心健康是研究必不可少的条件


学术研究人员在痴迷于某项科学发现时,往往会废寝忘食,这其实很危险。我也曾有这样的经历,现在我明白锻炼身体和精神上的休息是投资。如果我花 8 小时睡觉和 4 小时工作,那么比花4 小时睡觉和 8 小时工作的效率要高得多,更不用说其他的一些潜在影响了。


在遇到棘手的问题时,我们很难中途停下来。如今的我有时已经精疲力竭了,还是不愿停下来休息,其实这样并不好,身心俱疲的情况下很难有实质性的进展。我们应该休息一下,深呼吸。我希望在进入研究生涯的下一阶段时,继续努力保持身心健康。


参考链接:


http://web.mit.edu/tslvr/www/lessons_two_years.html



《新程序员001-003》全面上市,对话世界级大师,报道中国IT行业创新创造!









Spring 官方证实:框架爆大漏洞,JDK 9 及以上版本均受影响


☞潘爱民:计算机程序的演进——我的程序人生三十年
☞从“优化”、“向社会输送人才”到“毕业”!互联网的高情商裁员

推荐阅读
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
  • 本文介绍了在go语言中利用(*interface{})(nil)传递参数类型的原理及应用。通过分析Martini框架中的injector类型的声明,解释了values映射表的作用以及parent Injector的含义。同时,讨论了该技术在实际开发中的应用场景。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • Parity game(poj1733)题解及思路分析
    本文是对题目"Parity game(poj1733)"的解题思路进行分析。题目要求判断每次给出的区间内1的个数是否和之前的询问相冲突,如果冲突则结束。本文首先介绍了离线算法的思路,然后详细解释了带权并查集的基本操作。同时,本文还对异或运算进行了学习,并给出了具体的操作步骤。最后,本文给出了完整的代码实现,并进行了测试。 ... [详细]
author-avatar
ym_泳梅
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有